//--------------------------------------------------------------------
#ifndef _dkstatements_h
#define _dkstatements_h
//--------------------------------------------------------------------
#include <avr/pgmspace.h>

#include "dkvariables.h"

//--------------------------------------------------------------------
extern struct _dkfornext *dkfornextstack;
extern struct _dkwhilewend *dkwhilewendstack;
extern struct _dkgosub *dkgosubstack;
//--------------------------------------------------------------------

struct _dkfornext
{
	uint16_t forlinenum;
	struct _dkvariable *var;			// ptr to variable being used (yvar)
	void *step;

	struct _dkfornext *next;			// ptr to next item in linked list
};


struct _dkwhilewend
{
	uint16_t whilelinenum;

	struct _dkwhilewend *next;
};

struct _dkgosub
{
	uint16_t gosublinenum;

	struct _dkgosub *next;
};

//--------------------------------------------------------------------

// declarations for statement handlers
extern char *dkstatement_rem( char *line );

extern char * dkstatement_let( char *line );

extern char *dkstatement_goto( char *line );

//--------------------------------------------------------------------
#endif	// !_dkstatements_h
//--------------------------------------------------------------------

